/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 刘柄华
 * Date: 2022-05-22
 * Time: 17:50
 */
public class TestDemo02 {

    /*
    * 数组中出现次数超过一半的数字
    * */

    //方法: 选中数组第一个数字等于target 定义times记录次数
    //     从第二个元素开始遍历数组元素,若当前元素的值等于target就让times++,不等于就--,当times为0的时候,更新target为当前数组下标元素,times置为1
    //     遍历完成之后, 若times的值大于0 当前的target就是要找的数字,若等于0数组中就没有出现次数超过一半的数字.
    public int MoreThanHalfNum_Solution(int [] array) {
        if(array.length==0)return 0;
        int target = array[0];
        int times = 1;
        for(int i=1;i<array.length;i++){
            if(times ==0){
                target = array[i];
                times = 1;
            }else{
                if(target ==array[i]){
                    times++;
                }else{
                    times--;
                }
            }
        }
        if(times>0){
            return target;
        }
        return 0;
    }
}
